Raspberry Pi /RP2350 /PIO0 /SM2_EXECCTRL

Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text

Interpret as SM2_EXECCTRL

31 2827 2423 2019 1615 1211 87 43 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (IRQ)STATUS_N0 (TXLEVEL)STATUS_SEL 0WRAP_BOTTOM 0WRAP_TOP0 (OUT_STICKY)OUT_STICKY 0 (INLINE_OUT_EN)INLINE_OUT_EN 0OUT_EN_SEL0JMP_PIN0 (SIDE_PINDIR)SIDE_PINDIR 0 (SIDE_EN)SIDE_EN 0 (EXEC_STALLED)EXEC_STALLED

STATUS_SEL=TXLEVEL, STATUS_N=IRQ

Description

Execution/behavioural settings for state machine 2

Fields

STATUS_N

Comparison level or IRQ index for the MOV x, STATUS instruction.

If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N greater than the current FIFO depth are reserved, and have undefined behaviour.

0 (IRQ): Index 0-7 of an IRQ flag in this PIO block

8 (IRQ_PREVPIO): Index 0-7 of an IRQ flag in the next lower-numbered PIO block

16 (IRQ_NEXTPIO): Index 0-7 of an IRQ flag in the next higher-numbered PIO block

STATUS_SEL

Comparison used for the MOV x, STATUS instruction.

0 (TXLEVEL): All-ones if TX FIFO level < N, otherwise all-zeroes

1 (RXLEVEL): All-ones if RX FIFO level < N, otherwise all-zeroes

2 (IRQ): All-ones if the indexed IRQ flag is raised, otherwise all-zeroes

WRAP_BOTTOM

After reaching wrap_top, execution is wrapped to this address.

WRAP_TOP

After reaching this address, execution is wrapped to wrap_bottom. If the instruction is a jump, and the jump condition is true, the jump takes priority.

OUT_STICKY

Continuously assert the most recent OUT/SET to the pins

INLINE_OUT_EN

If 1, use a bit of OUT data as an auxiliary write enable When used in conjunction with OUT_STICKY, writes with an enable of 0 will deassert the latest pin write. This can create useful masking/override behaviour due to the priority ordering of state machine pin writes (SM0 < SM1 < …)

OUT_EN_SEL

Which data bit to use for inline OUT enable

JMP_PIN

The GPIO number to use as condition for JMP PIN. Unaffected by input mapping.

SIDE_PINDIR

If 1, side-set data is asserted to pin directions, instead of pin values

SIDE_EN

If 1, the MSB of the Delay/Side-set instruction field is used as side-set enable, rather than a side-set data bit. This allows instructions to perform side-set optionally, rather than on every instruction, but the maximum possible side-set width is reduced from 5 to 4. Note that the value of PINCTRL_SIDESET_COUNT is inclusive of this enable bit.

EXEC_STALLED

If 1, an instruction written to SMx_INSTR is stalled, and latched by the state machine. Will clear to 0 once this instruction completes.

Links

() ()